#pragma once

typedef unsigned char UCHAR;
typedef unsigned int UINT;

#define DATADEF( x , y ) x y
#define STRINGDEF_2( name , length) string name
#define STRINGENCODE_2( name , length) pcstr->appendString( name , length ) 
#define STRINGDECODE_2( name  , length) pcstr->getString( name , length );	

#define ENCODE( x, y ) pcstr->append##x( y )
#define DECODE( x, y ) pcstr->get##x( y )

#define HEADERINTERFACE \
	virtual int encode( cstring *pcstr );\
	virtual int decode( cstring *pcstr	 );
